<?php
namespace app\index\controller;

use think\Controller;
use app\index\model\Message;


/**
 * 首页控制器类
 * 负责处理首页及留言详情页的显示逻辑
 */
class Index extends Controller
{
    /**
     * 留言模型实例
     * @var Message
     */
    protected $message;

    /**
     * 构造函数
     * 初始化控制器并实例化留言模型
     */
    public function __construct()
    {
        parent::__construct();
        $this->message = new Message();
    }

    /**
     * 首页方法
     * 显示留言列表，支持分页功能
     * 
     * @return mixed 返回渲染后的视图
     */
    public function index()
    {
        // 获取当前页码，默认为第1页
        $page = input('page/d', 1);
        // 设置每页显示的留言数量，默认为5条
        $limit = input('limit/d', 5); // 每页显示5条留言
        
        // 调用模型方法获取留言列表（带分页）
        $messageList = $this->message->getList($page, $limit);
        
        // 向视图传递数据
        $this->assign([
            'messages' => $messageList,  // 留言列表数据
            'page' => $messageList->render()  // 分页导航HTML
        ]);
        
        // 渲染并返回视图
        return $this->fetch();
    }

    /**
     * 留言详情方法
     * 显示单条留言的详细信息及其回复
     * 
     * @param int $id 留言ID
     * @return mixed 返回渲染后的视图
     */
    public function detail($id)
    {
        // 检查ID参数是否存在
        if (!$id) {
            $this->error('参数错误');
        }

        // 调用模型方法获取留言详情
        $message = $this->message->getDetail($id);
        // 检查留言是否存在
        if (!$message) {
            $this->error('留言不存在');
        }

        // 向视图传递数据
        $this->assign([
            'message' => $message  // 留言详情数据
        ]);

        // 渲染并返回视图
        return $this->fetch();
    }
} 